package offer;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileService {
	
	public void makeBasePath(String path){
		File dir = new File(path);//"c:\\temp"라는 문자열을 파일 객체로 만듬
		if(!dir.exists()) dir.mkdirs();
		//"c:\\temp"라는 경로가 로컬시스템내에 없다면 "c:\\temp"라는 디렉토리를 만들어라
	}
    public File saveFile(File file, String basePath, String fileName)
    	throws IOException{
    	
    	//System.out.println("업로드된 파일이름:"+ file.getName());
    	
    	
    	if(null==file || file.getName().equals("") || file.length() <=0)
    		return null;
    	makeBasePath(basePath);
    	//만약에 "c:\\temp" 라는 폴더가 없을 경우 디렉토리 생성
    	
    	//String serverFullPath = basePath + "\\" + fileName;
    	//만약에 "테스트.txt"파일을 업로드 했다면
    	//업로드되는 폴더에 저장되어지는 파일의 경로와 파일명은 "c:\\temp\\테스트.txt"
    	File outFile = new File(basePath, fileName);
    	
    	FileInputStream inputStream = new FileInputStream(file);
    	FileOutputStream outputStream = new FileOutputStream(outFile);
    	
    	int bytesRead = 0;//어느정도의 byte를 읽었는지에 대한 숫자값을 저장할 용도로 만듬
    	byte [] buffer = new byte[1024];//파일을 복사해서 업로드할 때 이용할 버퍼
    	
    	while((bytesRead=inputStream.read(buffer,0,1024))!=-1){
    		outputStream.write(buffer,0,bytesRead);
    	}
    	outputStream.close();
    	inputStream.close();
    	return outFile;
    }
    
}
